﻿using ProveedorPagosREST.Dominio;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace ProveedorPagosREST.Persistencia
{
    public class TarjetaDAO
    {
        public Tarjeta Crear(Tarjeta tarjetaACrear)
        {
            Tarjeta tarjetaCreado = null;
            string sql = "INSERT INTO TB_TARJETA values(@NRO,@MONEDA,@SALDO,@CVV,@PERIODOV,@EJERCICIOV)";
            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", tarjetaACrear.NRO));
                    com.Parameters.Add(new SqlParameter("@cod", tarjetaACrear.MONEDA));
                    com.Parameters.Add(new SqlParameter("@cod", tarjetaACrear.SALDO));
                    com.Parameters.Add(new SqlParameter("@cod", tarjetaACrear.CVV));
                    com.Parameters.Add(new SqlParameter("@cod", tarjetaACrear.PERIODOV));
                    com.Parameters.Add(new SqlParameter("@cod", tarjetaACrear.EJERCICIOV));
                    com.ExecuteNonQuery();
                }
            }
            tarjetaCreado = Obtener(tarjetaACrear.NRO);
            return tarjetaCreado;
        }

        public Tarjeta Obtener(string codigo)
        { 
            Tarjeta tarjetaEncontrado = null;
            string sql = "SELECT * FROM TB_TARJETA WHERE NRO=@NRO";
            using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@NRO", codigo));
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {
                        if (resultado.Read())
                        {
                            tarjetaEncontrado = new Tarjeta()
                            {
                                NRO = (string)resultado["NRO"],
                                MONEDA = (string)resultado["MONEDA"],
                                SALDO = (Decimal)resultado["SALDO"],
                                CVV = (string)resultado["CVV"],
                                PERIODOV = (int)resultado["PERIODOV"],
                                EJERCICIOV = (int)resultado["EJERCICIOV"]
                            };
                        }
                    }
                }
            }
            return tarjetaEncontrado;
        }
        public Tarjeta Modificar(Tarjeta tarjetaModificar)
        {
            //TODO
            return null;
        }
        public void Eliminar(Tarjeta alumnoEliminar)
        {
            //TODO

        }
        public List<Tarjeta> ListarTodos()
        {
            //TODO
            return null;
        }
    }
}